home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 24 / PCGamer24_23Demos.iso / WarZone 2100 / data1.cab / Program_Executable_Files / script / text / tutorial.slo < prev   
Encoding:
Text File  |  1998-10-21  |  17.9 KB  |  768 lines

  1. /* Tutorial Script (Revised version) */
  2.  
  3. //variables
  4. private    INT    t;    //keeps track of how far player is in tutorial
  5. private    INT    n;    //holds number of droids built
  6. public    int    startPower;    //initial power level
  7.  
  8.  
  9. //level
  10. public    LEVEL            NextLev;
  11. //public    INTMESSAGE        MissionBrief;
  12.  
  13. //components
  14. public    SENSOR                defaultSensor;
  15. public    BODY                viperBody;        
  16. public    BODY                howitzerBody;    
  17. public    BODY                missileBody;        
  18. public    BODY                trikeBody;        
  19. public    BODY                buggyBody;        
  20. public    BODY                babaBody;        
  21.  
  22. public    CONSTRUCT            spade;            
  23.  
  24. // public    ECM                    ecm;                
  25.  
  26. public    PROPULSION            wheeledProp;        
  27. public    PROPULSION            trackProp;        
  28. public    PROPULSION            babaProp;        
  29.  
  30. //tutorial specific
  31. public    TEXTSTRING            buildPowerGenMsg;
  32. //public    DROIDID                constructorDroid;
  33. private    DROID                selDroid;    //selected droid
  34. public    STRUCTURESTAT        powerGen;        
  35. public    STRUCTURE            commandCentre;
  36. public    STRUCTURE            factoryStruc, researchStruc;
  37.  
  38. public    TEXTSTRING            increaseBuildRate;
  39.  
  40. public    STRUCTURESTAT        oilDerrick;        
  41. public    TEXTSTRING            buildResEx;
  42. public    FEATURE            res1;
  43. //public    INTMESSAGE        res1Msg;
  44. public    TEXTSTRING            scoutMsg;
  45.  
  46. private    FEATURE                hiddenArtefact;
  47. public    FEATURESTAT            crate;
  48. public    TEXTSTRING            artefactFoundMsg;
  49. public    TEXTSTRING            artefactRecoverMsg;
  50. public        int        art1X, art1Y;
  51. public        INTMESSAGE    art1Msg;
  52.  
  53. public    TEXTSTRING            buildResearchMsg;
  54. public    STRUCTURESTAT        research;        
  55. public    TEXTSTRING            researchArteMsg;
  56.  
  57. public    RESEARCHSTAT            artefact;
  58. public    TEXTSTRING            designMsg;
  59. public    STRUCTURESTAT        factory;            
  60. public    TEXTSTRING            buildFactoryMsg;
  61.  
  62. public    TEXTSTRING            buildDroidMsg;
  63. public    TEXTSTRING            assignDPMsg;
  64. public    TEXTSTRING            prodRunMsg;
  65.  
  66. public    TEXTSTRING            wellDoneMsg;
  67.  
  68. public    WEAPON                mg;
  69.  
  70. //public    TEXTSTRING            factoryRPL;
  71. public    TEXTSTRING            tutorialWAV;
  72. public    TEXTSTRING            gameWAV;
  73.  
  74. public    TEXTSTRING            des_msg0, des_msg1, des_msg2, des_msg3;
  75. public    TEXTSTRING            des_msg4, des_msg5, des_msg6, des_msg7;
  76. public    TEXTSTRING            bld_msg1;
  77.  
  78. // audio
  79. public    SOUND                SND_CLICK_BUILD;
  80. public    SOUND                SND_USE_2ND_CONST1;
  81. public    SOUND                SND_USE_2ND_CONST2;
  82. public    SOUND                SND_USE_2ND_CONST3;
  83. public    SOUND                SND_BUILD_RES_EX1;
  84. public    SOUND                SND_BUILD_RES_EX2;
  85. public    SOUND                SND_BUILD_RES_EX3;
  86. public    SOUND                SND_BUILD_RES_EX4;
  87. public    SOUND                SND_SCOUT_TO_WEST;
  88. public    SOUND                SND_ARTIFACT_DIS;
  89. public    SOUND                SND_RECOVER_ART;
  90. public    SOUND                SND_BUILD_RES_1;
  91. public    SOUND                SND_BUILD_RES_2;
  92. public    SOUND                SND_BUILD_RES_3;
  93. public    SOUND                SND_RES_ART1;
  94. public    SOUND                SND_RES_ART2;
  95. public    SOUND                SND_RES_ART3;
  96. public    SOUND                SND_RES_ART4;
  97. public    SOUND                SND_DESIGN_WAR;
  98. public    SOUND                SND_BUILD_FAC1;
  99. public    SOUND                SND_BUILD_FAC2;
  100. public    SOUND                SND_BUILD_FAC3;
  101. public    SOUND                SND_MANU_WAR1;
  102. public    SOUND                SND_MANU_WAR2;
  103. public    SOUND                SND_MANU_WAR3;
  104. public    SOUND                SND_MANU_WAR4;
  105. public    SOUND                SND_SET_PROD1;
  106. public    SOUND                SND_SET_PROD2;
  107. public    SOUND                SND_SET_PROD3;
  108. public    SOUND                SND_SET_PROD4;
  109. public    SOUND                SND_BUILD_POWERGEN1;
  110. public    SOUND                SND_BUILD_POWERGEN2;
  111. public    SOUND                SND_BUILD_POWERGEN3;
  112. public    SOUND                SND_BUILD_POWERGEN4;
  113. public    SOUND                SND_BUILD_POWERGEN5;
  114. public    SOUND                SND_ASSIGN_DELPOINT;
  115. public    SOUND                SND_MISSION_SUCCESS;
  116.  
  117. //proximity messages
  118. public    SOUND                SND_GEN_ART_HERE;
  119. public    SOUND                SND_RESO_HERE;
  120. public    SOUND                SND_DROIDS_REQ;
  121. public    SOUND                SND_FRIEND_LZ;
  122. public    SOUND                SND_ENEMY_LZ;
  123.  
  124. //Design screen buttons
  125. public    int    NEWDESIGN_BUT, TURRET_BUT, BODY_BUT, PROP_BUT;
  126. public    int    WEAP_BUT, SYS_BUT, COMM_BUT;
  127.  
  128. //triggers
  129. trigger droidSelTrig(CALL_DROID_SELECTED, ref selDroid);
  130. trigger droidHelpTrig((selDroid.order==DORDER_HELPBUILD), 5);
  131. trigger droidHelpTrig2((selDroid.order==DORDER_NONE), 5);
  132. trigger tutorialTrigger(every,10);
  133. trigger beingBuilt(structureBeingBuilt(powerGen, 0), 10);
  134. trigger derrickBeingBuilt(structureBeingBuilt(oilDerrick, 0), 10);
  135. trigger inRange(droidInRange(0, hiddenArtefact.x,hiddenArtefact.y, 384), 5);
  136. trigger nextTo(droidInRange(0, hiddenArtefact.x,hiddenArtefact.y, 171), 5);
  137. trigger researchBeingBuilt(structureBeingBuilt(research, 0), 10);
  138. trigger factoryBeingBuilt(structureBeingBuilt(factory, 0), 10);
  139.  
  140. trigger runDone((n>=1), 10);    //Only build one for now((n>=3), 10);
  141. trigger endVid(wait, 10);    //changed for DEMO (CALL_VIDEO_QUIT);
  142. trigger droidDesigned(CALL_DROIDDESIGNED);
  143.  
  144. /*
  145. trigger powGenBuilt(CALL_POWERGEN_BUILT);
  146. trigger resExBuilt(CALL_RESEX_BUILT);
  147. trigger researchBuilt(CALL_RESEARCH_BUILT);
  148. trigger researchDone(CALL_RESEARCHCOMPLETED);
  149. trigger droidDesigned(CALL_DROIDDESIGNED);
  150. trigger factoryBuilt(CALL_FACTORY_BUILT);
  151. trigger droidBuilt(CALL_DROIDBUILT);
  152. */
  153.  
  154. trigger manurunTrig(CALL_MANURUN);
  155. trigger manulistTrig(CALL_MANULIST);
  156. trigger buildlistTrig(CALL_BUILDLIST);
  157. trigger buildgridTrig(CALL_BUILDGRID);
  158. trigger researchlistTrig(CALL_RESEARCHLIST);
  159. trigger desTrig(CALL_BUTTON_PRESSED, IDRET_DESIGN);
  160. trigger newdesTrig(CALL_BUTTON_PRESSED, NEWDESIGN_BUT);
  161. trigger turretTrig(CALL_BUTTON_PRESSED, TURRET_BUT);
  162. trigger turretTrig2(CALL_DESIGN_WEAPON);
  163. trigger bodyTrig(CALL_BUTTON_PRESSED, BODY_BUT);
  164. trigger bodyTrig2(CALL_DESIGN_BODY);
  165. trigger propTrig(CALL_BUTTON_PRESSED, PROP_BUT);
  166. trigger propTrig2(CALL_DESIGN_PROPULSION);
  167. trigger desQuit(CALL_DESIGN_QUIT);
  168. trigger prodrunTrig(CALL_BUTTON_PRESSED, IDRET_MANUFACTURE);
  169. trigger prodrunTrig2(not(structureIdle(factoryStruc)), 5);
  170. trigger researchartTrig(not(structureIdle(researchStruc)), 5);
  171.  
  172. event researchArt3;
  173. //event productionRun2;    //disabled until sorted
  174. //event productionRun3;    //disabled until sorted
  175. event designWarDroid2;
  176. event designWarDroid3;
  177. event buildResearch2;
  178. event researchArt2;
  179. event buildFactory2;
  180. event manuDroid2;
  181.  
  182. event initialisedEvent;
  183. event buildPowGen;
  184. event buildPowGen2;
  185. event buildPowGen3;
  186. event helpBuild;
  187. event helpBuild1;
  188. event helpBuild2;
  189. event helpBuild3;
  190. event buildDerrick;
  191. event scoutWest;
  192. event artFound;
  193. event buildResearch;
  194. event researchArt;
  195. event designWarDroid;
  196. event buildFactory;
  197. event manuDroid;
  198. //event productionRun;    //disabled until sorted
  199. event endTutorial;
  200.  
  201.  
  202. event initialisedEvent(CALL_GAMEINIT)
  203. {
  204. //full briefing hard coded before script runs!!
  205.     inTutorial=true;
  206.     //centreView(commandCentre);
  207.     centreViewPos(1472, 1984);            //centre so can see HQ and Oil
  208.     setRadarZoom(1);
  209.     //setScrollParams(0, 0, 31, 31);        //limit tutorial area of map
  210. //add short version of Mission briefing to list
  211.     //addMessage(MissionBrief, CAMP_MSG, 0, false);
  212.     gameLevel=0;
  213. //set up the reticule buttons
  214.     //addReticuleButton(OPTIONS);
  215.     addReticuleButton(CANCEL);
  216.     //addReticuleButton(BUILD);
  217.     removeReticuleButton(MANUFACTURE);
  218.     removeReticuleButton(RESEARCH);
  219.     removeReticuleButton(INTELMAP);
  220.     removeReticuleButton(DESIGN);
  221.     removeReticuleButton(BUILD);
  222.     removeReticuleButton(OPTIONS);
  223. //set starting power
  224.     setPowerLevel(startPower,0);
  225.  
  226. //moved by kev to here from research completed
  227.     makeComponentAvailable(viperBody, 0);
  228.     makeComponentAvailable(spade, 0);
  229.     makeComponentAvailable(wheeledProp, 0);
  230.     makeComponentAvailable(mg, 0);
  231.     setDefaultSensor(defaultSensor ,0);
  232.  
  233.     setStructureLimits(factory, 1, 0);
  234.     setStructureLimits(oilDerrick, 1, 0);
  235.     setStructureLimits(powerGen, 1, 0);
  236.     setStructureLimits(research, 1, 0);
  237.  
  238. //    playCDAudio( 1 );
  239.  
  240.     setEventTrigger( buildDerrick, tutorialTrigger);
  241.     setEventTrigger(initialisedEvent, inactive);
  242. }
  243.  
  244.  
  245. event buildDerrick(inactive)
  246. {
  247.     t=0;
  248.     enableStructure(oilDerrick,0);
  249.     addConsoleText(buildResEx, 0);
  250.     //addMessage(res1Msg, PROX_MSG, 0, false);
  251.     pause(10);        //pause(35);
  252.     playSound(SND_BUILD_RES_EX1, 0);
  253.     pause(30);
  254.     if (t<1)
  255.     {
  256.         t=1;
  257.         playSound(SND_BUILD_RES_EX2, 0);
  258.         //pause(40);
  259.         //playSound(SND_BUILD_RES_EX3, 0);
  260.     }
  261.     setEventTrigger(buildDerrick, inactive);
  262. }
  263.  
  264. event buildDerrick2(CALL_DROID_SELECTED, ref selDroid)
  265. {
  266.     setEventTrigger(buildDerrick2, inactive);
  267.     pause(10);
  268.     if (t<2)
  269.     {
  270.         t=2;
  271.         playSound(SND_BUILD_RES_EX3, 0);
  272.     }
  273. }
  274.  
  275.  
  276. event buildPowGen(CALL_RESEX_BUILT)
  277. {
  278.     //removeMessage(res1Msg, PROX_MSG, 0);
  279.     //selectDroidByID(constructorDroid, 0);
  280.     pause(30);
  281.     addConsoleText(buildPowerGenMsg, 0);
  282.     playSound(SND_BUILD_RES_EX4, 0);
  283.     pause(50);
  284.     if (t<11)
  285.     {
  286.         t=11;
  287.         playSound(SND_BUILD_POWERGEN2, 0);
  288.         pause(20);
  289.         addReticuleButton(BUILD);
  290. //flash the build reticule????????
  291.         flashOn(IDRET_BUILD);
  292.         enableStructure(powerGen,0);
  293.         setEventTrigger(buildPowGen2, buildlistTrig);    //To prevent early double clicking!!
  294.     }
  295.     setEventTrigger(buildPowGen, inactive);
  296. }
  297.  
  298. event buildPowGen2(inactive)
  299. {
  300.     flashOff(IDRET_BUILD);
  301.     pause(10);
  302.     if (t<13)
  303.     {
  304.         t=13;
  305.         playSound(SND_BUILD_POWERGEN4, 0);
  306.         setEventTrigger(buildPowGen3, buildgridTrig);    //To prevent early double clicking!!
  307.     }
  308.     setEventTrigger(buildPowGen2, inactive);
  309. }
  310.  
  311. event buildPowGen3(inactive)
  312. {
  313.     pause(10);
  314.     if (t<14)
  315.     {
  316.         t=14;
  317.         playSound(SND_BUILD_POWERGEN5, 0);
  318.     }
  319.     setEventTrigger(helpBuild, beingBuilt);
  320.     setEventTrigger(buildPowGen3, inactive);
  321. }
  322.  
  323.  
  324. event helpBuild(inactive)
  325. {
  326.     addConsoleText(increaseBuildRate, 0);
  327.     pause(10);        //pause(30);
  328.     if (t<15)
  329.     {
  330.         t=15;
  331.         playSound(SND_USE_2ND_CONST1, 0);
  332.         setEventTrigger(helpBuild1, droidSelTrig);
  333.         pause(35);
  334.     }
  335.     setEventTrigger(helpBuild, inactive);
  336. }
  337.  
  338. event helpBuild1(inactive)
  339. {
  340. //only when droid selected
  341.     if (t<17)
  342.     {
  343.         setEventTrigger(helpBuild2, droidHelpTrig2);
  344.     }
  345.     setEventTrigger(helpBuild1, inactive);
  346. }
  347.  
  348. event helpBuild2(inactive)
  349. {
  350. //only if selected droid is idle!!
  351.     pause(10);
  352.     if (t<17)
  353.     {
  354.         t=17;
  355.         playSound(SND_USE_2ND_CONST2, 0);
  356.         setEventTrigger(helpBuild3, droidHelpTrig);
  357.     }
  358.     setEventTrigger(helpBuild2, inactive);
  359. }
  360.  
  361. event helpBuild3(inactive)
  362. {
  363. //ordered to help build??????
  364.     pause(10);
  365.     if (t<18)
  366.     {
  367.         t=18;
  368.         pause(20);
  369.         playSound(SND_USE_2ND_CONST3, 0);
  370.     }
  371.     setEventTrigger(helpBuild3, inactive);
  372. }
  373.  
  374.  
  375. event scoutWest(CALL_POWERGEN_BUILT)
  376. {
  377.     t=20;
  378.     addConsoleText(scoutMsg, 0);
  379.     //addMessage(art1Msg, PROX_MSG, 0, false);
  380.     pause(30);        //pause(35);
  381.     playSound(SND_SCOUT_TO_WEST, 0);
  382.     pause(30);        //pause(35);
  383.     hiddenArtefact = addFeature(crate, art1X, art1Y);
  384.     setEventTrigger(artFound, inRange);
  385.     setEventTrigger(scoutWest, inactive);
  386. }
  387.  
  388. event artFound(inactive)
  389. {
  390.     t=30;
  391.     addConsoleText(artefactRecoverMsg, 0);
  392.     enableResearch(artefact, 0);
  393.     pause(10);        //pause(35);
  394.     playSound(SND_RECOVER_ART, 0);
  395.     setEventTrigger(buildResearch, nextTo);
  396.     setEventTrigger(artFound, inactive);
  397. }
  398.  
  399. event buildResearch(inactive)
  400. {
  401.     //removeMessage(art1Msg, PROX_MSG, 0);
  402.     destroyFeature(hiddenArtefact);
  403.     enableStructure(research,0);
  404.     addConsoleText(buildResearchMsg, 0);
  405. //    pause(30);        //pause(35);
  406. //    if (t<40)
  407. //    {
  408. //        t=40;
  409. //        playSound(SND_ARTIFACT_DIS, 0);
  410. //        //setEventTrigger(researchArt, researchBuilt);
  411. //    }
  412.     pause(10);
  413.     if (t<41)
  414.     {
  415.         t=41;
  416.         playSound(SND_CLICK_BUILD, 0);
  417.         setEventTrigger(buildResearch2,buildlistTrig);
  418. //flash the build reticule
  419.         flashOn(IDRET_BUILD);
  420.     }
  421.     setEventTrigger(buildResearch, inactive);
  422. }
  423.  
  424. event buildResearch2(inactive)
  425. {
  426. //build icon selected?
  427.     flashOff(IDRET_BUILD);
  428.     pause(10);
  429.     if (t<42)
  430.     {
  431.         t=42;
  432.         playSound(SND_BUILD_RES_2, 0);
  433.     }
  434.     setEventTrigger(buildResearch2, inactive);
  435. }
  436.  
  437. event researchInProg(researchBeingBuilt)
  438. {
  439. //being built?
  440.     pause(10);
  441.     if (t<43)
  442.     {
  443.         t=43;
  444.         playSound(SND_BUILD_RES_3, 0);
  445.     }
  446.     setEventTrigger(researchInProg, inactive);
  447. }
  448.  
  449. event researchArt(CALL_RESEARCH_BUILT)
  450. {
  451.  
  452.     researchStruc=getStructure(research, 0);    //get factory ID so can test later!
  453.     addConsoleText(researchArteMsg, 0);
  454.     pause(30);        //pause(35);
  455.     if (t<50)
  456.     {
  457.         t=50;
  458.         playSound(SND_RES_ART2, 0);
  459.         pause(20);
  460.         addReticuleButton(RESEARCH);
  461.         //setEventTrigger(designWarDroid, researchDone);
  462.         setEventTrigger(researchArt2, researchlistTrig);
  463. //flash the research reticule
  464.         flashOn(IDRET_RESEARCH);
  465.     }
  466.     setEventTrigger(researchArt, inactive);
  467. }
  468.  
  469. event researchArt2(inactive)
  470. {
  471. //research icon selected
  472.     flashOff(IDRET_RESEARCH);
  473.     pause(10);
  474.     if (t<51)
  475.     {
  476.         t=51;
  477.  
  478.         playSound(SND_RES_ART3, 0);
  479.         setEventTrigger(researchArt3, researchartTrig);
  480.     }
  481.     setEventTrigger(researchArt2, inactive);
  482. }
  483.  
  484. event researchArt3(inactive)
  485. {
  486. //artifact selected?????
  487.     pause(10);
  488.     if (t<52)
  489.     {
  490.         t=52;
  491.         playSound(SND_RES_ART4, 0);
  492.     }
  493.     setEventTrigger(researchArt3, inactive);
  494. }
  495.  
  496. event designWarDroid(CALL_RESEARCHCOMPLETED)
  497. {
  498.     addConsoleText(designMsg, 0);
  499.     //makeComponentAvailable(mg, 0); //already done at start!
  500.     pause(30);
  501.     if (t<60)
  502.     {
  503.         t=60;
  504.         playSound(SND_DESIGN_WAR, 0);
  505.         pause(20);
  506.         addReticuleButton(DESIGN);
  507. //flash the research reticule
  508.         flashOn(IDRET_DESIGN);
  509.         setEventTrigger(designWarDroid2, desTrig);
  510.         //setEventTrigger(buildFactory, droidDesigned);
  511.     }
  512.     setEventTrigger(designWarDroid, inactive);
  513. }
  514.  
  515. event designWarDroid2(inactive)
  516. {
  517.     addConsoleText(des_msg0, 0);
  518.     //playSound to go here
  519.     setEventTrigger(designWarDroid3, droidDesigned);
  520.     setEventTrigger(designWarDroid2, inactive);
  521.     t=61;
  522.     flashOff(IDRET_DESIGN);
  523. }
  524.  
  525. event design1(newdesTrig)
  526. {
  527.     addConsoleText(des_msg1, 0);    //choose Weapon
  528.     //playSound to go here
  529.     setEventTrigger(design1, inactive);
  530. }
  531.  
  532. event design2(turretTrig)
  533. {
  534.     addConsoleText(des_msg2, 0);
  535.     //playSound to go here
  536.     setEventTrigger(design2, inactive);
  537. }
  538.  
  539. event design3(turretTrig2)
  540. {
  541.     addConsoleText(des_msg3, 0);    //choose Body
  542.     //playSound to go here
  543.     setEventTrigger(design3, inactive);
  544. }
  545.  
  546. event design4(bodyTrig)
  547. {
  548.     addConsoleText(des_msg4, 0);
  549.     //playSound to go here
  550.     setEventTrigger(design4, inactive);
  551. }
  552.  
  553. event design5(bodyTrig2)
  554. {
  555.     addConsoleText(des_msg5, 0);    //choose Propulsion
  556.     //playSound to go here
  557.     setEventTrigger(design5, inactive);
  558. }
  559.  
  560. event design6(propTrig)
  561. {
  562.     addConsoleText(des_msg6, 0);
  563.     //playSound to go here
  564.     setEventTrigger(design6, inactive);
  565. }
  566.  
  567. event design7(propTrig2)
  568. {
  569.     addConsoleText(des_msg7, 0);    //finished design
  570.     //flashOn(CANCEL);    //this doesn't flash
  571.     flashOn(MANUFACTURE);    //use this instead
  572.     flashOn(RESEARCH);
  573.     flashOn(OPTIONS);
  574.     flashOn(INTELMAP);
  575.     flashOn(DESIGN);
  576.     flashOn(BUILD);
  577.  
  578.     //playSound to go here
  579.     setEventTrigger(design7, inactive);
  580. }
  581.  
  582. event designWarDroid3(inactive)
  583. {
  584.     setEventTrigger(buildFactory, desQuit);
  585.     setEventTrigger(designWarDroid3, inactive);
  586.     t=62;
  587. }
  588.  
  589. event buildFactory(CALL_DROIDDESIGNED)
  590. {
  591.     //flashOff(CANCEL);
  592.     flashOff(MANUFACTURE);    //use this instead
  593.     flashOff(RESEARCH);
  594.     flashOff(OPTIONS);
  595.     flashOff(INTELMAP);
  596.     flashOff(DESIGN);
  597.     flashOff(BUILD);
  598.  
  599. //no longer in design screen and droid designed
  600.     enableStructure(factory,0);
  601.     addConsoleText(buildFactoryMsg, 0);
  602.     pause(10);
  603.     if (t<70)
  604.     {
  605.         t=70;
  606.         playSound(SND_BUILD_FAC1, 0);
  607.         playSound(SND_BUILD_FAC2, 0);
  608.         setEventTrigger(buildFactory2, buildlistTrig);
  609. //flash the build reticule
  610.         flashOn(IDRET_BUILD);
  611.         //setEventTrigger(manuDroid, factoryBuilt);
  612.     }
  613.     setEventTrigger(buildFactory, inactive);
  614. }
  615.  
  616. event buildFactory2(inactive)
  617. {
  618. //build icon selected
  619.     flashOff(IDRET_BUILD);
  620.     pause(10);
  621.     if (t<71)
  622.     {
  623.         t=71;
  624.         playSound(SND_BUILD_FAC3, 0);
  625.     }
  626.     setEventTrigger(buildFactory2, inactive);
  627. }
  628.  
  629. event moveAssPoint(factoryBeingBuilt)
  630. {
  631.     pause(10);        //pause(35);
  632.     if (t<=80)
  633.     {
  634.         t=80;
  635.         addConsoleText(assignDPMsg, 0);    //same as build a droid!
  636.         playSound(SND_ASSIGN_DELPOINT, 0);
  637.  
  638.     }
  639.     setEventTrigger(moveAssPoint, inactive);
  640. }
  641. event manuDroid(CALL_FACTORY_BUILT)
  642. {
  643.     factoryStruc=getStructure(factory, 0);    //get factory ID so can test later!
  644.     pause(30);
  645.     if (t<90)
  646.     {
  647.         t=90;
  648.         addConsoleText(buildDroidMsg, 0);
  649.         pause(10);
  650.         playSound(SND_MANU_WAR2, 0);
  651.         pause(10);
  652.         addReticuleButton(MANUFACTURE);
  653.         setEventTrigger(manuDroid2, manulistTrig);
  654. //flash the manufacture reticule
  655.         flashOn(IDRET_MANUFACTURE);
  656.     }
  657.     setEventTrigger(manuDroid, inactive);
  658. }
  659.  
  660. //extra event to give player feedback that hit correct button
  661. //a wav would be nice also
  662. event buildFeedback(inactive)
  663. {
  664.     addConsoleText(bld_msg1, 0);
  665.     setEventTrigger(buildFeedback, inactive);
  666. }
  667.  
  668. event manuDroid2(inactive)
  669. {
  670. //manufacture icon selected
  671.     flashOff(IDRET_MANUFACTURE);
  672.     pause(10);
  673.     if (t<91)
  674.     {
  675.         t=91;
  676.         playSound(SND_MANU_WAR3, 0);
  677.     }
  678.     setEventTrigger(buildFeedback, prodrunTrig2);
  679.     setEventTrigger(manuDroid2, inactive);
  680. }
  681.  
  682. /* Disabled until this is sorted out
  683. event productionRun (CALL_DROIDBUILT)
  684. {
  685.     addConsoleText(prodRunMsg, 0);
  686.     pause(20);
  687.     if (t<100)
  688.     {
  689.         t=100;
  690.         playSound(SND_SET_PROD2, 0);
  691.         setEventTrigger(productionRun2, manurunTrig);
  692.     }
  693.     setEventTrigger(productionRun, inactive);
  694. }
  695.  
  696.  
  697. event productionRun2 (inactive)
  698. {
  699. //production run slider set >1
  700.     pause(10);
  701.     if (t<102)
  702.     {
  703.         t=102;
  704.         playSound(SND_SET_PROD4, 0);
  705.         setEventTrigger(productionRun3, prodrunTrig2);
  706.     }
  707.     setEventTrigger(productionRun2, inactive);
  708. }
  709. event productionRun3 (inactive)
  710. {
  711. //droid selected
  712.     pause(20);
  713.     if (t<=103)
  714.     {
  715.         t=103;
  716.         playSound(SND_SET_PROD3, 0);
  717.     }
  718.     setEventTrigger(productionRun3, inactive);
  719. }
  720. */
  721.  
  722. event loadNextLev(inactive)
  723. {
  724.      setEventTrigger(loadNextLev, inactive);
  725.     addReticuleButton (INTELMAP);
  726.     addReticuleButton (OPTIONS);
  727.     setStructureLimits (powerGen,5,0);
  728.     setStructureLimits (oilDerrick,100,0);
  729.     setStructureLimits (research,5,0);
  730.     setStructureLimits (factory,5,0);
  731.     addConsoleText(wellDoneMsg, 0);
  732.     pause(10);
  733.     playSound(SND_MISSION_SUCCESS, 0);
  734.     pause(50);
  735.     tutorialEnd();
  736.     gameOver(true);
  737.     //gameLevel=1;        //flag next map scripts available
  738.     //startMission(CAMP_EXPAND, NextLev);
  739.  
  740. }
  741.  
  742. event endTutorial(runDone)
  743. {
  744.     t=110;
  745.     pause(20);                //wait for speech
  746.      setEventTrigger(endTutorial, inactive);
  747.      setEventTrigger(loadNextLev, endVid);
  748.     //playVideo(factoryRPL,0);        //play factory sequence
  749. }
  750.  
  751.  
  752. event loadGames(CALL_MISSION_START)        //cheat button ctrl M
  753. {
  754.     //playSound(SND_ERAD_SCAVANGERS, 0);
  755.     makeComponentAvailable(viperBody, 0);
  756.     makeComponentAvailable(spade, 0);
  757.     makeComponentAvailable(wheeledProp, 0);
  758.     makeComponentAvailable(mg, 0);
  759.     n=4;
  760.      //setEventTrigger(endTutorial, runDone);
  761.     setEventTrigger(loadGames, inactive);
  762. }
  763.  
  764. event numDroids(CALL_DROIDBUILT)
  765. {
  766.     n=n+1;
  767. }
  768.